#ifndef _COLOR_FACTORY_H_
#define _COLOR_FACTORY_H_


#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000


#include <string>
#include "..\Color\Color.h"
#include "..\Exceptions\InvalidColorException.h"
#include "..\Validator\ValidatorUtils.h"

class ColorFactory {
	
	public:
	
		virtual ~ColorFactory();

		static ColorFactory* getInstance();

		Color* getColor(std::string value) throw (InvalidColorException);

		static void destroy();
		
	private:

		ColorFactory();
	
		static ColorFactory* instance;
};

#endif
